"""
综合练习：初识Python
目标：综合运用本章所学知识
涵盖：变量、数据类型、输入输出、运算符
"""

print("=" * 60)
print("Python基础综合练习")
print("=" * 60)
print()

# ==================== 练习1：个人信息卡 ====================
print("【练习1：个人信息卡】")
print("-" * 60)

# 获取用户信息
name = input("请输入你的姓名：")
age = int(input("请输入你的年龄："))
city = input("请输入你的城市：")
hobby = input("请输入你的爱好：")

# 格式化显示
print("\n" + "=" * 60)
print("个人信息卡".center(60))
print("=" * 60)
print(f"姓名：{name}")
print(f"年龄：{age}岁")
print(f"城市：{city}")
print(f"爱好：{hobby}")
print(f"出生年份：约{2025 - age}年")
print("=" * 60)

print("\n")

# ==================== 练习2：简单计算器 ====================
print("【练习2：四则运算计算器】")
print("-" * 60)

# 输入两个数
num1 = float(input("请输入第一个数："))
num2 = float(input("请输入第二个数："))

# 计算结果
add_result = num1 + num2
sub_result = num1 - num2
mul_result = num1 * num2
div_result = num1 / num2 if num2 != 0 else "除数不能为0"

# 显示结果
print(f"\n计算结果：")
print(f"{num1} + {num2} = {add_result}")
print(f"{num1} - {num2} = {sub_result}")
print(f"{num1} × {num2} = {mul_result}")
print(f"{num1} ÷ {num2} = {div_result}")

print("\n")

# ==================== 练习3：温度转换器 ====================
print("【练习3：温度转换器】")
print("-" * 60)

print("请选择转换方向：")
print("1. 摄氏度 → 华氏度")
print("2. 华氏度 → 摄氏度")

choice = input("请输入选择（1或2）：")

if choice == "1":
    celsius = float(input("请输入摄氏度："))
    fahrenheit = celsius * 9 / 5 + 32
    print(f"{celsius}°C = {fahrenheit:.2f}°F")
elif choice == "2":
    fahrenheit = float(input("请输入华氏度："))
    celsius = (fahrenheit - 32) * 5 / 9
    print(f"{fahrenheit}°F = {celsius:.2f}°C")
else:
    print("输入错误！")

print("\n")

# ==================== 练习4：BMI计算器 ====================
print("【练习4：BMI健康指数计算器】")
print("-" * 60)

# 输入身高和体重
height = float(input("请输入你的身高（米）："))
weight = float(input("请输入你的体重（公斤）："))

# 计算BMI
bmi = weight / (height ** 2)

# 显示结果和健康建议
print(f"\n你的BMI指数：{bmi:.2f}")

# 判断健康状况
print("健康状况：", end="")
if bmi < 18.5:
    print("偏瘦")
elif bmi < 24:
    print("正常")
elif bmi < 28:
    print("偏胖")
else:
    print("肥胖")

print("\n")

# ==================== 练习5：购物结算系统 ====================
print("【练习5：购物结算系统】")
print("-" * 60)

# 商品信息
print("欢迎来到购物结算系统！")
item1_name = input("请输入第一件商品名称：")
item1_price = float(input("请输入第一件商品单价："))
item1_quantity = int(input("请输入第一件商品数量："))

item2_name = input("请输入第二件商品名称：")
item2_price = float(input("请输入第二件商品单价："))
item2_quantity = int(input("请输入第二件商品数量："))

# 计算小计
item1_total = item1_price * item1_quantity
item2_total = item2_price * item2_quantity
subtotal = item1_total + item2_total

# 优惠判断（满100打9折）
discount = 0.9 if subtotal >= 100 else 1.0
final_total = subtotal * discount
saved = subtotal - final_total

# 打印购物小票
print("\n" + "=" * 60)
print("购物小票".center(60))
print("=" * 60)
print(f"商品1：{item1_name}")
print(f"  单价：¥{item1_price:.2f}  数量：{item1_quantity}  小计：¥{item1_total:.2f}")
print(f"商品2：{item2_name}")
print(f"  单价：¥{item2_price:.2f}  数量：{item2_quantity}  小计：¥{item2_total:.2f}")
print("-" * 60)
print(f"商品总额：¥{subtotal:.2f}")
if saved > 0:
    print(f"优惠金额：-¥{saved:.2f}（满100打9折）")
print(f"应付金额：¥{final_total:.2f}")
print("=" * 60)
print("谢谢惠顾！".center(60))
print("=" * 60)

print("\n")

# ==================== 练习6：成绩统计分析 ====================
print("【练习6：成绩统计分析】")
print("-" * 60)

# 输入成绩
print("请输入三科成绩：")
subject1 = input("科目1名称：")
score1 = float(input(f"{subject1}成绩："))

subject2 = input("科目2名称：")
score2 = float(input(f"{subject2}成绩："))

subject3 = input("科目3名称：")
score3 = float(input(f"{subject3}成绩："))

# 统计分析
total = score1 + score2 + score3
average = total / 3
highest = max(score1, score2, score3)
lowest = min(score1, score2, score3)

# 判断等级
if average >= 90:
    grade = "优秀"
elif average >= 80:
    grade = "良好"
elif average >= 70:
    grade = "中等"
elif average >= 60:
    grade = "及格"
else:
    grade = "不及格"

# 显示结果
print("\n" + "=" * 60)
print("成绩分析报告".center(60))
print("=" * 60)
print(f"{subject1}：{score1:.1f}分")
print(f"{subject2}：{score2:.1f}分")
print(f"{subject3}：{score3:.1f}分")
print("-" * 60)
print(f"总分：{total:.1f}分")
print(f"平均分：{average:.2f}分")
print(f"最高分：{highest:.1f}分")
print(f"最低分：{lowest:.1f}分")
print(f"综合评定：{grade}")
print("=" * 60)

# 判断是否全部及格
all_pass = score1 >= 60 and score2 >= 60 and score3 >= 60
print(f"是否全部及格：{'是' if all_pass else '否'}")

# 判断是否有单科优秀
has_excellent = score1 >= 90 or score2 >= 90 or score3 >= 90
print(f"是否有单科优秀（≥90）：{'是' if has_excellent else '否'}")

print("=" * 60)

print("\n")

# ==================== 练习总结 ====================
print("=" * 60)
print("✨ 恭喜你完成所有练习！")
print("=" * 60)
print("""
本次练习综合运用了：
✅ 变量定义与赋值
✅ 基本数据类型（int、float、str、bool）
✅ 用户输入（input）和类型转换
✅ 格式化输出（f-string）
✅ 算术运算符
✅ 比较运算符
✅ 逻辑运算符
✅ 条件判断

继续加油，Python学习之路才刚刚开始！💪
""")
print("=" * 60)

